package com.dingreading.cloud.admin.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.ColumnAlias;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

@Data
public class ShopCartSendDto implements Serializable {


    /**
     * 购物车商品id
     */
    @ColumnAlias("id")
    private Long shopCartId;

    /**
     * 购物车类型 1.是 2.否
     */
    private Integer type;

    /**
     * 门店uid
     */
    private String storeUid;

    /**
     * 门店名
     */
    private String storeName;

    /**
     * 员工uid
     */
    private String staffUid;

    /**
     * 收货人姓名
     */
    private String name;

    /**
     * 收货人手机号码
     */
    private String phone;

    /**
     * 收货地址
     */
    private String address;

    /**
     * 订单号
     */
    private String code;

    /**
     * 商品id
     */
    private Long goodsId;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 封面图
     */
    private String img;

    /**
     * 商品分类id
     */
    private Long goodsTypeId;

    /**
     * 商品分类名称
     */
    private String goodsTypeName;

    /**
     * 商品分类名称
     */
    private String unit;

    /**
     * 是否实体货物
     * 0.不是 1.是
     */
    private Integer realStatus;

    /**
     * 商品单价
     */
    private Double unitPrice;

    /**
     * 总价
     */
    private Double price;

    /**
     * 购买数量
     */
    private Integer buyNum;

    /**
     * 最低购买数
     */
    private Integer minBuyNum;

    /**
     * 备注
     */
    private String remark;

    /**
     * 能否使用代金券
     * 0.否 1.能
     */
    private Integer couponStatus;

    /**
     * 状态
     * 0.取消 1.完成 2.未付款 3.待付
     */
    private Integer status;

    /**
     * 状态名
     */
    private String statusName;

    /**
     * 支付时间
     */
    private String payTimes;

    /**
     * 付款方式 1.不限 2.银行转账
     */
    private Integer paymentMethod;

    /**
     * 出库方式 1.自营仓库 2.线上发货 3.第三方仓库
     */
    private Integer stockOutMethod;

    /**
     * 创建人uid
     */
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    private String addStaffName;

    /**
     * 更新人uid
     */
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    private String lastStaffName;

    /**
     * 添加时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date editTime;

    /**
     * 物车记录uid
     */
    private String uid;

    /**
     * 商品组合类型 0.普通商品 1.组合商品
     */
    private Integer comboType;

    /**
     * 父商品组合类型 0.普通商品 1.组合商品
     */
    private Integer mainComboType;

    /**
     * 组合商品的父购物车记录uid
     */
    private String mainShopCartUid;

    /**
     * 父商品id
     */
    private Long mainGoodsId;

    /**
     * 父商品名称
     */
    private String mainGoodsName;

    /**
     * 父商品分类id
     */
    private Long mainGoodsTypeId;

    /**
     * 父商品分类名称
     */
    private String mainGoodsTypeName;

    /**
     * 重量/克
     */
    private Double weight;

    /**
     * 总重量/克
     */
    private Double totalWeight;

    /**
     * 可售数量
     */
    private Integer saleNum;

    /**
     * 可售数量
     */
    private Integer usableNum;

    /**
     * 待完成的出库数量
     */
    private Integer saveOutNum;

    /**
     * 已完成的出库数量
     */
    private Integer outNum;

    /**
     * 待完成的出库数量
     */
    private Integer waitOutNum;

    /**
     * 出库备注
     */
    private String outRemark;

    /**
     * 包邮模板id
     */
    private Long freeDeliveryId;

    /**
     * 包邮模板名称
     */
    private String freeDeliveryName;

    /**
     * 能否包邮状态
     */
    private Integer freeDeliveryStatus;

}
